package com.codefish;

import java.util.ArrayList;
import java.util.List;

/**
 * 抽象的学生队伍类
 *
 * @author codefish
 * @version 1.0
 * @date 2022/06/27 下午 10:16
 */
public abstract class AbstractStudentQueue {
    /**
     * 学生身高列表
     */
    List<Integer> heightList = new ArrayList<>();

    /**
     * 向队伍中添加所有的学生
     *
     * @param students 待添加的学生列表
     */
    public void addAllStudents(List<Integer> students) {
        heightList.addAll(students);
    }

    /**
     * 展示学生队伍
     */
    public void perform() {
        //首先调用sort，对学生队伍进行排列
        sort();
        //依次打印身高
        heightList.forEach(h -> {
            System.out.print(h + " ");
        });
        System.out.println();
    }

    /**
     * 排队处理方法，延迟到子类定义具体的算法
     */
    public abstract void sort();

}
